home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / dev / gcc / gcc260_base.lha / gnu / os-include / inline / dos.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-07-21  |  63.7 KB  |  2,169 lines

  1. #ifndef _INLINE_DOS_H
  2. #define _INLINE_DOS_H
  3.  
  4. #include <sys/cdefs.h>
  5. #include <inline/stubs.h>
  6.  
  7. #include <dos/dos.h>
  8.  
  9. __BEGIN_DECLS
  10.  
  11. #ifndef BASE_EXT_DECL
  12. #define BASE_EXT_DECL 
  13. #define BASE_EXT_DECL0 extern struct DosLibrary * DOSBase;
  14. #endif
  15. #ifndef BASE_PAR_DECL
  16. #define BASE_PAR_DECL
  17. #define BASE_PAR_DECL0 void
  18. #endif
  19. #ifndef BASE_NAME
  20. #define BASE_NAME DOSBase
  21. #endif
  22.  
  23. BASE_EXT_DECL0
  24.  
  25. static __inline void 
  26. AbortPkt (BASE_PAR_DECL struct MsgPort *port,struct DosPacket *pkt)
  27. {
  28.   BASE_EXT_DECL
  29.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  30.   register struct MsgPort *d1 __asm("d1") = port;
  31.   register struct DosPacket *d2 __asm("d2") = pkt;
  32.   __asm __volatile ("jsr a6@(-0x108)"
  33.   : /* no output */
  34.   : "r" (a6), "r" (d1), "r" (d2)
  35.   : "a0","a1","d0","d1","d2", "memory");
  36. }
  37. static __inline LONG 
  38. AddBuffers (BASE_PAR_DECL STRPTR name,long number)
  39. {
  40.   BASE_EXT_DECL
  41.   register LONG  _res  __asm("d0");
  42.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  43.   register STRPTR d1 __asm("d1") = name;
  44.   register long d2 __asm("d2") = number;
  45.   __asm __volatile ("jsr a6@(-0x2dc)"
  46.   : "=r" (_res)
  47.   : "r" (a6), "r" (d1), "r" (d2)
  48.   : "a0","a1","d0","d1","d2", "memory");
  49.   return _res;
  50. }
  51. static __inline LONG 
  52. AddDosEntry (BASE_PAR_DECL struct DosList *dlist)
  53. {
  54.   BASE_EXT_DECL
  55.   register LONG  _res  __asm("d0");
  56.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  57.   register struct DosList *d1 __asm("d1") = dlist;
  58.   __asm __volatile ("jsr a6@(-0x2a6)"
  59.   : "=r" (_res)
  60.   : "r" (a6), "r" (d1)
  61.   : "a0","a1","d0","d1", "memory");
  62.   return _res;
  63. }
  64. static __inline BOOL 
  65. AddPart (BASE_PAR_DECL STRPTR dirname,STRPTR filename,unsigned long size)
  66. {
  67.   BASE_EXT_DECL
  68.   register BOOL  _res  __asm("d0");
  69.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  70.   register STRPTR d1 __asm("d1") = dirname;
  71.   register STRPTR d2 __asm("d2") = filename;
  72.   register unsigned long d3 __asm("d3") = size;
  73.   __asm __volatile ("jsr a6@(-0x372)"
  74.   : "=r" (_res)
  75.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  76.   : "a0","a1","d0","d1","d2","d3", "memory");
  77.   return _res;
  78. }
  79. static __inline LONG 
  80. AddSegment (BASE_PAR_DECL STRPTR name,BPTR seg,long system)
  81. {
  82.   BASE_EXT_DECL
  83.   register LONG  _res  __asm("d0");
  84.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  85.   register STRPTR d1 __asm("d1") = name;
  86.   register BPTR d2 __asm("d2") = seg;
  87.   register long d3 __asm("d3") = system;
  88.   __asm __volatile ("jsr a6@(-0x306)"
  89.   : "=r" (_res)
  90.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  91.   : "a0","a1","d0","d1","d2","d3", "memory");
  92.   return _res;
  93. }
  94. static __inline APTR 
  95. AllocDosObject (BASE_PAR_DECL unsigned long type,struct TagItem *tags)
  96. {
  97.   BASE_EXT_DECL
  98.   register APTR  _res  __asm("d0");
  99.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  100.   register unsigned long d1 __asm("d1") = type;
  101.   register struct TagItem *d2 __asm("d2") = tags;
  102.   __asm __volatile ("jsr a6@(-0xe4)"
  103.   : "=r" (_res)
  104.   : "r" (a6), "r" (d1), "r" (d2)
  105.   : "a0","a1","d0","d1","d2", "memory");
  106.   return _res;
  107. }
  108. #ifndef NO_INLINE_STDARG
  109. #define AllocDosObjectTags(a0, tags...) \
  110.   ({ struct TagItem _tags[] = { tags }; AllocDosObject ((a0), _tags); })
  111. #endif /* not NO_INLINE_STDARG */
  112. #define AllocDosObjectTagList(a0, a1) AllocDosObject ((a0), (a1))
  113. static __inline BOOL 
  114. AssignAdd (BASE_PAR_DECL STRPTR name,BPTR lock)
  115. {
  116.   BASE_EXT_DECL
  117.   register BOOL  _res  __asm("d0");
  118.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  119.   register STRPTR d1 __asm("d1") = name;
  120.   register BPTR d2 __asm("d2") = lock;
  121.   __asm __volatile ("jsr a6@(-0x276)"
  122.   : "=r" (_res)
  123.   : "r" (a6), "r" (d1), "r" (d2)
  124.   : "a0","a1","d0","d1","d2", "memory");
  125.   return _res;
  126. }
  127. static __inline BOOL 
  128. AssignLate (BASE_PAR_DECL STRPTR name,STRPTR path)
  129. {
  130.   BASE_EXT_DECL
  131.   register BOOL  _res  __asm("d0");
  132.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  133.   register STRPTR d1 __asm("d1") = name;
  134.   register STRPTR d2 __asm("d2") = path;
  135.   __asm __volatile ("jsr a6@(-0x26a)"
  136.   : "=r" (_res)
  137.   : "r" (a6), "r" (d1), "r" (d2)
  138.   : "a0","a1","d0","d1","d2", "memory");
  139.   return _res;
  140. }
  141. static __inline LONG 
  142. AssignLock (BASE_PAR_DECL STRPTR name,BPTR lock)
  143. {
  144.   BASE_EXT_DECL
  145.   register LONG  _res  __asm("d0");
  146.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  147.   register STRPTR d1 __asm("d1") = name;
  148.   register BPTR d2 __asm("d2") = lock;
  149.   __asm __volatile ("jsr a6@(-0x264)"
  150.   : "=r" (_res)
  151.   : "r" (a6), "r" (d1), "r" (d2)
  152.   : "a0","a1","d0","d1","d2", "memory");
  153.   return _res;
  154. }
  155. static __inline BOOL 
  156. AssignPath (BASE_PAR_DECL STRPTR name,STRPTR path)
  157. {
  158.   BASE_EXT_DECL
  159.   register BOOL  _res  __asm("d0");
  160.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  161.   register STRPTR d1 __asm("d1") = name;
  162.   register STRPTR d2 __asm("d2") = path;
  163.   __asm __volatile ("jsr a6@(-0x270)"
  164.   : "=r" (_res)
  165.   : "r" (a6), "r" (d1), "r" (d2)
  166.   : "a0","a1","d0","d1","d2", "memory");
  167.   return _res;
  168. }
  169. static __inline struct DosList *
  170. AttemptLockDosList (BASE_PAR_DECL unsigned long flags)
  171. {
  172.   BASE_EXT_DECL
  173.   register struct DosList * _res  __asm("d0");
  174.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  175.   register unsigned long d1 __asm("d1") = flags;
  176.   __asm __volatile ("jsr a6@(-0x29a)"
  177.   : "=r" (_res)
  178.   : "r" (a6), "r" (d1)
  179.   : "a0","a1","d0","d1", "memory");
  180.   return _res;
  181. }
  182. static __inline LONG 
  183. ChangeMode (BASE_PAR_DECL long type,BPTR fh,long newmode)
  184. {
  185.   BASE_EXT_DECL
  186.   register LONG  _res  __asm("d0");
  187.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  188.   register long d1 __asm("d1") = type;
  189.   register BPTR d2 __asm("d2") = fh;
  190.   register long d3 __asm("d3") = newmode;
  191.   __asm __volatile ("jsr a6@(-0x1c2)"
  192.   : "=r" (_res)
  193.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  194.   : "a0","a1","d0","d1","d2","d3", "memory");
  195.   return _res;
  196. }
  197. static __inline LONG 
  198. CheckSignal (BASE_PAR_DECL long mask)
  199. {
  200.   BASE_EXT_DECL
  201.   register LONG  _res  __asm("d0");
  202.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  203.   register long d1 __asm("d1") = mask;
  204.   __asm __volatile ("jsr a6@(-0x318)"
  205.   : "=r" (_res)
  206.   : "r" (a6), "r" (d1)
  207.   : "a0","a1","d0","d1", "memory");
  208.   return _res;
  209. }
  210. static __inline struct CommandLineInterface *
  211. Cli (BASE_PAR_DECL0)
  212. {
  213.   BASE_EXT_DECL
  214.   register struct CommandLineInterface * _res  __asm("d0");
  215.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  216.   __asm __volatile ("jsr a6@(-0x1ec)"
  217.   : "=r" (_res)
  218.   : "r" (a6)
  219.   : "a0","a1","d0","d1", "memory");
  220.   return _res;
  221. }
  222. static __inline LONG 
  223. CliInitNewcli (BASE_PAR_DECL struct DosPacket *dp)
  224. {
  225.   BASE_EXT_DECL
  226.   register LONG  _res  __asm("d0");
  227.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  228.   register struct DosPacket *a0 __asm("a0") = dp;
  229.   __asm __volatile ("jsr a6@(-0x3a2)"
  230.   : "=r" (_res)
  231.   : "r" (a6), "r" (a0)
  232.   : "a0","a1","d0","d1", "memory");
  233.   return _res;
  234. }
  235. static __inline LONG 
  236. CliInitRun (BASE_PAR_DECL struct DosPacket *dp)
  237. {
  238.   BASE_EXT_DECL
  239.   register LONG  _res  __asm("d0");
  240.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  241.   register struct DosPacket *a0 __asm("a0") = dp;
  242.   __asm __volatile ("jsr a6@(-0x3a8)"
  243.   : "=r" (_res)
  244.   : "r" (a6), "r" (a0)
  245.   : "a0","a1","d0","d1", "memory");
  246.   return _res;
  247. }
  248. static __inline LONG 
  249. Close (BASE_PAR_DECL BPTR file)
  250. {
  251.   BASE_EXT_DECL
  252.   register LONG  _res  __asm("d0");
  253.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  254.   register BPTR d1 __asm("d1") = file;
  255.   __asm __volatile ("jsr a6@(-0x24)"
  256.   : "=r" (_res)
  257.   : "r" (a6), "r" (d1)
  258.   : "a0","a1","d0","d1", "memory");
  259.   return _res;
  260. }
  261. static __inline LONG 
  262. CompareDates (BASE_PAR_DECL struct DateStamp *date1,struct DateStamp *date2)
  263. {
  264.   BASE_EXT_DECL
  265.   register LONG  _res  __asm("d0");
  266.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  267.   register struct DateStamp *d1 __asm("d1") = date1;
  268.   register struct DateStamp *d2 __asm("d2") = date2;
  269.   __asm __volatile ("jsr a6@(-0x2e2)"
  270.   : "=r" (_res)
  271.   : "r" (a6), "r" (d1), "r" (d2)
  272.   : "a0","a1","d0","d1","d2", "memory");
  273.   return _res;
  274. }
  275. static __inline BPTR 
  276. CreateDir (BASE_PAR_DECL STRPTR name)
  277. {
  278.   BASE_EXT_DECL
  279.   register BPTR  _res  __asm("d0");
  280.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  281.   register STRPTR d1 __asm("d1") = name;
  282.   __asm __volatile ("jsr a6@(-0x78)"
  283.   : "=r" (_res)
  284.   : "r" (a6), "r" (d1)
  285.   : "a0","a1","d0","d1", "memory");
  286.   return _res;
  287. }
  288. static __inline struct Process *
  289. CreateNewProc (BASE_PAR_DECL struct TagItem *tags)
  290. {
  291.   BASE_EXT_DECL
  292.   register struct Process * _res  __asm("d0");
  293.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  294.   register struct TagItem *d1 __asm("d1") = tags;
  295.   __asm __volatile ("jsr a6@(-0x1f2)"
  296.   : "=r" (_res)
  297.   : "r" (a6), "r" (d1)
  298.   : "a0","a1","d0","d1", "memory");
  299.   return _res;
  300. }
  301. #ifndef NO_INLINE_STDARG
  302. #define CreateNewProcTags(tags...) \
  303.   ({ struct TagItem _tags[] = { tags }; CreateNewProc (_tags); })
  304. #endif /* not NO_INLINE_STDARG */
  305. #define CreateNewProcTagList(a0) CreateNewProc ((a0))
  306. static __inline struct MsgPort *
  307. CreateProc (BASE_PAR_DECL STRPTR name,long pri,BPTR segList,long stackSize)
  308. {
  309.   BASE_EXT_DECL
  310.   register struct MsgPort * _res  __asm("d0");
  311.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  312.   register STRPTR d1 __asm("d1") = name;
  313.   register long d2 __asm("d2") = pri;
  314.   register BPTR d3 __asm("d3") = segList;
  315.   register long d4 __asm("d4") = stackSize;
  316.   __asm __volatile ("jsr a6@(-0x8a)"
  317.   : "=r" (_res)
  318.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  319.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  320.   return _res;
  321. }
  322. static __inline BPTR 
  323. CurrentDir (BASE_PAR_DECL BPTR lock)
  324. {
  325.   BASE_EXT_DECL
  326.   register BPTR  _res  __asm("d0");
  327.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  328.   register BPTR d1 __asm("d1") = lock;
  329.   __asm __volatile ("jsr a6@(-0x7e)"
  330.   : "=r" (_res)
  331.   : "r" (a6), "r" (d1)
  332.   : "a0","a1","d0","d1", "memory");
  333.   return _res;
  334. }
  335. static __inline struct DateStamp *
  336. DateStamp (BASE_PAR_DECL struct DateStamp *date)
  337. {
  338.   BASE_EXT_DECL
  339.   register struct DateStamp * _res  __asm("d0");
  340.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  341.   register struct DateStamp *d1 __asm("d1") = date;
  342.   __asm __volatile ("jsr a6@(-0xc0)"
  343.   : "=r" (_res)
  344.   : "r" (a6), "r" (d1)
  345.   : "a0","a1","d0","d1", "memory");
  346.   return _res;
  347. }
  348. static __inline LONG 
  349. DateToStr (BASE_PAR_DECL struct DateTime *datetime)
  350. {
  351.   BASE_EXT_DECL
  352.   register LONG  _res  __asm("d0");
  353.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  354.   register struct DateTime *d1 __asm("d1") = datetime;
  355.   __asm __volatile ("jsr a6@(-0x2e8)"
  356.   : "=r" (_res)
  357.   : "r" (a6), "r" (d1)
  358.   : "a0","a1","d0","d1", "memory");
  359.   return _res;
  360. }
  361. static __inline void 
  362. Delay (BASE_PAR_DECL long timeout)
  363. {
  364.   BASE_EXT_DECL
  365.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  366.   register long d1 __asm("d1") = timeout;
  367.   __asm __volatile ("jsr a6@(-0xc6)"
  368.   : /* no output */
  369.   : "r" (a6), "r" (d1)
  370.   : "a0","a1","d0","d1", "memory");
  371. }
  372. static __inline LONG 
  373. DeleteFile (BASE_PAR_DECL STRPTR name)
  374. {
  375.   BASE_EXT_DECL
  376.   register LONG  _res  __asm("d0");
  377.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  378.   register STRPTR d1 __asm("d1") = name;
  379.   __asm __volatile ("jsr a6@(-0x48)"
  380.   : "=r" (_res)
  381.   : "r" (a6), "r" (d1)
  382.   : "a0","a1","d0","d1", "memory");
  383.   return _res;
  384. }
  385. static __inline LONG 
  386. DeleteVar (BASE_PAR_DECL STRPTR name,unsigned long flags)
  387. {
  388.   BASE_EXT_DECL
  389.   register LONG  _res  __asm("d0");
  390.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  391.   register STRPTR d1 __asm("d1") = name;
  392.   register unsigned long d2 __asm("d2") = flags;
  393.   __asm __volatile ("jsr a6@(-0x390)"
  394.   : "=r" (_res)
  395.   : "r" (a6), "r" (d1), "r" (d2)
  396.   : "a0","a1","d0","d1","d2", "memory");
  397.   return _res;
  398. }
  399. static __inline struct MsgPort *
  400. DeviceProc (BASE_PAR_DECL STRPTR name)
  401. {
  402.   BASE_EXT_DECL
  403.   register struct MsgPort * _res  __asm("d0");
  404.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  405.   register STRPTR d1 __asm("d1") = name;
  406.   __asm __volatile ("jsr a6@(-0xae)"
  407.   : "=r" (_res)
  408.   : "r" (a6), "r" (d1)
  409.   : "a0","a1","d0","d1", "memory");
  410.   return _res;
  411. }
  412. static __inline LONG 
  413. DoPkt (BASE_PAR_DECL struct MsgPort *port,long action,long arg1,long arg2,long arg3,long arg4,long arg5)
  414. {
  415.   BASE_EXT_DECL
  416.   register LONG  _res  __asm("d0");
  417.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  418.   register struct MsgPort *d1 __asm("d1") = port;
  419.   register long d2 __asm("d2") = action;
  420.   register long d3 __asm("d3") = arg1;
  421.   register long d4 __asm("d4") = arg2;
  422.   register long d5 __asm("d5") = arg3;
  423.   register long d6 __asm("d6") = arg4;
  424.   register long d7 __asm("d7") = arg5;
  425.   __asm __volatile ("jsr a6@(-0xf0)"
  426.   : "=r" (_res)
  427.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (d5), "r" (d6), "r" (d7)
  428.   : "a0","a1","d0","d1","d2","d3","d4","d5","d6","d7", "memory");
  429.   return _res;
  430. }
  431. static __inline BPTR 
  432. DupLock (BASE_PAR_DECL BPTR lock)
  433. {
  434.   BASE_EXT_DECL
  435.   register BPTR  _res  __asm("d0");
  436.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  437.   register BPTR d1 __asm("d1") = lock;
  438.   __asm __volatile ("jsr a6@(-0x60)"
  439.   : "=r" (_res)
  440.   : "r" (a6), "r" (d1)
  441.   : "a0","a1","d0","d1", "memory");
  442.   return _res;
  443. }
  444. static __inline BPTR 
  445. DupLockFromFH (BASE_PAR_DECL BPTR fh)
  446. {
  447.   BASE_EXT_DECL
  448.   register BPTR  _res  __asm("d0");
  449.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  450.   register BPTR d1 __asm("d1") = fh;
  451.   __asm __volatile ("jsr a6@(-0x174)"
  452.   : "=r" (_res)
  453.   : "r" (a6), "r" (d1)
  454.   : "a0","a1","d0","d1", "memory");
  455.   return _res;
  456. }
  457. static __inline void 
  458. EndNotify (BASE_PAR_DECL struct NotifyRequest *notify)
  459. {
  460.   BASE_EXT_DECL
  461.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  462.   register struct NotifyRequest *d1 __asm("d1") = notify;
  463.   __asm __volatile ("jsr a6@(-0x37e)"
  464.   : /* no output */
  465.   : "r" (a6), "r" (d1)
  466.   : "a0","a1","d0","d1", "memory");
  467. }
  468. static __inline LONG 
  469. ErrorReport (BASE_PAR_DECL long code,long type,unsigned long arg1,struct MsgPort *device)
  470. {
  471.   BASE_EXT_DECL
  472.   register LONG  _res  __asm("d0");
  473.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  474.   register long d1 __asm("d1") = code;
  475.   register long d2 __asm("d2") = type;
  476.   register unsigned long d3 __asm("d3") = arg1;
  477.   register struct MsgPort *d4 __asm("d4") = device;
  478.   __asm __volatile ("jsr a6@(-0x1e0)"
  479.   : "=r" (_res)
  480.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  481.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  482.   return _res;
  483. }
  484. static __inline LONG 
  485. ExAll (BASE_PAR_DECL BPTR lock,struct ExAllData *buffer,long size,long data,struct ExAllControl *control)
  486. {
  487.   BASE_EXT_DECL
  488.   register LONG  _res  __asm("d0");
  489.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  490.   register BPTR d1 __asm("d1") = lock;
  491.   register struct ExAllData *d2 __asm("d2") = buffer;
  492.   register long d3 __asm("d3") = size;
  493.   register long d4 __asm("d4") = data;
  494.   register struct ExAllControl *d5 __asm("d5") = control;
  495.   __asm __volatile ("jsr a6@(-0x1b0)"
  496.   : "=r" (_res)
  497.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (d5)
  498.   : "a0","a1","d0","d1","d2","d3","d4","d5", "memory");
  499.   return _res;
  500. }
  501. static __inline void 
  502. ExAllEnd (BASE_PAR_DECL BPTR lock,struct ExAllData *buffer,long size,long data,struct ExAllControl *control)
  503. {
  504.   BASE_EXT_DECL
  505.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  506.   register BPTR d1 __asm("d1") = lock;
  507.   register struct ExAllData *d2 __asm("d2") = buffer;
  508.   register long d3 __asm("d3") = size;
  509.   register long d4 __asm("d4") = data;
  510.   register struct ExAllControl *d5 __asm("d5") = control;
  511.   __asm __volatile ("jsr a6@(-0x3de)"
  512.   : /* no output */
  513.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (d5)
  514.   : "a0","a1","d0","d1","d2","d3","d4","d5", "memory");
  515. }
  516. static __inline LONG 
  517. ExNext (BASE_PAR_DECL BPTR lock,struct FileInfoBlock *fileInfoBlock)
  518. {
  519.   BASE_EXT_DECL
  520.   register LONG  _res  __asm("d0");
  521.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  522.   register BPTR d1 __asm("d1") = lock;
  523.   register struct FileInfoBlock *d2 __asm("d2") = fileInfoBlock;
  524.   __asm __volatile ("jsr a6@(-0x6c)"
  525.   : "=r" (_res)
  526.   : "r" (a6), "r" (d1), "r" (d2)
  527.   : "a0","a1","d0","d1","d2", "memory");
  528.   return _res;
  529. }
  530. static __inline LONG 
  531. Examine (BASE_PAR_DECL BPTR lock,struct FileInfoBlock *fileInfoBlock)
  532. {
  533.   BASE_EXT_DECL
  534.   register LONG  _res  __asm("d0");
  535.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  536.   register BPTR d1 __asm("d1") = lock;
  537.   register struct FileInfoBlock *d2 __asm("d2") = fileInfoBlock;
  538.   __asm __volatile ("jsr a6@(-0x66)"
  539.   : "=r" (_res)
  540.   : "r" (a6), "r" (d1), "r" (d2)
  541.   : "a0","a1","d0","d1","d2", "memory");
  542.   return _res;
  543. }
  544. static __inline BOOL 
  545. ExamineFH (BASE_PAR_DECL BPTR fh,struct FileInfoBlock *fib)
  546. {
  547.   BASE_EXT_DECL
  548.   register BOOL  _res  __asm("d0");
  549.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  550.   register BPTR d1 __asm("d1") = fh;
  551.   register struct FileInfoBlock *d2 __asm("d2") = fib;
  552.   __asm __volatile ("jsr a6@(-0x186)"
  553.   : "=r" (_res)
  554.   : "r" (a6), "r" (d1), "r" (d2)
  555.   : "a0","a1","d0","d1","d2", "memory");
  556.   return _res;
  557. }
  558. static __inline LONG 
  559. Execute (BASE_PAR_DECL STRPTR string,BPTR file,BPTR file2)
  560. {
  561.   BASE_EXT_DECL
  562.   register LONG  _res  __asm("d0");
  563.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  564.   register STRPTR d1 __asm("d1") = string;
  565.   register BPTR d2 __asm("d2") = file;
  566.   register BPTR d3 __asm("d3") = file2;
  567.   __asm __volatile ("jsr a6@(-0xde)"
  568.   : "=r" (_res)
  569.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  570.   : "a0","a1","d0","d1","d2","d3", "memory");
  571.   return _res;
  572. }
  573. static __inline void 
  574. Exit (BASE_PAR_DECL long returnCode)
  575. {
  576.   BASE_EXT_DECL
  577.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  578.   register long d1 __asm("d1") = returnCode;
  579.   __asm __volatile ("jsr a6@(-0x90)"
  580.   : /* no output */
  581.   : "r" (a6), "r" (d1)
  582.   : "a0","a1","d0","d1", "memory");
  583. }
  584. static __inline LONG 
  585. FGetC (BASE_PAR_DECL BPTR fh)
  586. {
  587.   BASE_EXT_DECL
  588.   register LONG  _res  __asm("d0");
  589.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  590.   register BPTR d1 __asm("d1") = fh;
  591.   __asm __volatile ("jsr a6@(-0x132)"
  592.   : "=r" (_res)
  593.   : "r" (a6), "r" (d1)
  594.   : "a0","a1","d0","d1", "memory");
  595.   return _res;
  596. }
  597. static __inline STRPTR 
  598. FGets (BASE_PAR_DECL BPTR fh,STRPTR buf,unsigned long buflen)
  599. {
  600.   BASE_EXT_DECL
  601.   register STRPTR  _res  __asm("d0");
  602.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  603.   register BPTR d1 __asm("d1") = fh;
  604.   register STRPTR d2 __asm("d2") = buf;
  605.   register unsigned long d3 __asm("d3") = buflen;
  606.   __asm __volatile ("jsr a6@(-0x150)"
  607.   : "=r" (_res)
  608.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  609.   : "a0","a1","d0","d1","d2","d3", "memory");
  610.   return _res;
  611. }
  612. static __inline LONG 
  613. FPutC (BASE_PAR_DECL BPTR fh,long ch)
  614. {
  615.   BASE_EXT_DECL
  616.   register LONG  _res  __asm("d0");
  617.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  618.   register BPTR d1 __asm("d1") = fh;
  619.   register long d2 __asm("d2") = ch;
  620.   __asm __volatile ("jsr a6@(-0x138)"
  621.   : "=r" (_res)
  622.   : "r" (a6), "r" (d1), "r" (d2)
  623.   : "a0","a1","d0","d1","d2", "memory");
  624.   return _res;
  625. }
  626. static __inline LONG 
  627. FPuts (BASE_PAR_DECL BPTR fh,STRPTR str)
  628. {
  629.   BASE_EXT_DECL
  630.   register LONG  _res  __asm("d0");
  631.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  632.   register BPTR d1 __asm("d1") = fh;
  633.   register STRPTR d2 __asm("d2") = str;
  634.   __asm __volatile ("jsr a6@(-0x156)"
  635.   : "=r" (_res)
  636.   : "r" (a6), "r" (d1), "r" (d2)
  637.   : "a0","a1","d0","d1","d2", "memory");
  638.   return _res;
  639. }
  640. static __inline LONG 
  641. FRead (BASE_PAR_DECL BPTR fh,APTR block,unsigned long blocklen,unsigned long number)
  642. {
  643.   BASE_EXT_DECL
  644.   register LONG  _res  __asm("d0");
  645.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  646.   register BPTR d1 __asm("d1") = fh;
  647.   register APTR d2 __asm("d2") = block;
  648.   register unsigned long d3 __asm("d3") = blocklen;
  649.   register unsigned long d4 __asm("d4") = number;
  650.   __asm __volatile ("jsr a6@(-0x144)"
  651.   : "=r" (_res)
  652.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  653.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  654.   return _res;
  655. }
  656. static __inline LONG 
  657. FWrite (BASE_PAR_DECL BPTR fh,APTR block,unsigned long blocklen,unsigned long number)
  658. {
  659.   BASE_EXT_DECL
  660.   register LONG  _res  __asm("d0");
  661.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  662.   register BPTR d1 __asm("d1") = fh;
  663.   register APTR d2 __asm("d2") = block;
  664.   register unsigned long d3 __asm("d3") = blocklen;
  665.   register unsigned long d4 __asm("d4") = number;
  666.   __asm __volatile ("jsr a6@(-0x14a)"
  667.   : "=r" (_res)
  668.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  669.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  670.   return _res;
  671. }
  672. static __inline BOOL 
  673. Fault (BASE_PAR_DECL long code,STRPTR header,STRPTR buffer,long len)
  674. {
  675.   BASE_EXT_DECL
  676.   register BOOL  _res  __asm("d0");
  677.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  678.   register long d1 __asm("d1") = code;
  679.   register STRPTR d2 __asm("d2") = header;
  680.   register STRPTR d3 __asm("d3") = buffer;
  681.   register long d4 __asm("d4") = len;
  682.   __asm __volatile ("jsr a6@(-0x1d4)"
  683.   : "=r" (_res)
  684.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  685.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  686.   return _res;
  687. }
  688. static __inline STRPTR 
  689. FilePart (BASE_PAR_DECL STRPTR path)
  690. {
  691.   BASE_EXT_DECL
  692.   register STRPTR  _res  __asm("d0");
  693.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  694.   register STRPTR d1 __asm("d1") = path;
  695.   __asm __volatile ("jsr a6@(-0x366)"
  696.   : "=r" (_res)
  697.   : "r" (a6), "r" (d1)
  698.   : "a0","a1","d0","d1", "memory");
  699.   return _res;
  700. }
  701. static __inline LONG 
  702. FindArg (BASE_PAR_DECL STRPTR keyword,STRPTR _template)
  703. {
  704.   BASE_EXT_DECL
  705.   register LONG  _res  __asm("d0");
  706.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  707.   register STRPTR d1 __asm("d1") = keyword;
  708.   register STRPTR d2 __asm("d2") = _template;
  709.   __asm __volatile ("jsr a6@(-0x324)"
  710.   : "=r" (_res)
  711.   : "r" (a6), "r" (d1), "r" (d2)
  712.   : "a0","a1","d0","d1","d2", "memory");
  713.   return _res;
  714. }
  715. static __inline struct Process *
  716. FindCliProc (BASE_PAR_DECL unsigned long num)
  717. {
  718.   BASE_EXT_DECL
  719.   register struct Process * _res  __asm("d0");
  720.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  721.   register unsigned long d1 __asm("d1") = num;
  722.   __asm __volatile ("jsr a6@(-0x222)"
  723.   : "=r" (_res)
  724.   : "r" (a6), "r" (d1)
  725.   : "a0","a1","d0","d1", "memory");
  726.   return _res;
  727. }
  728. static __inline struct DosList *
  729. FindDosEntry (BASE_PAR_DECL struct DosList *dlist,STRPTR name,unsigned long flags)
  730. {
  731.   BASE_EXT_DECL
  732.   register struct DosList * _res  __asm("d0");
  733.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  734.   register struct DosList *d1 __asm("d1") = dlist;
  735.   register STRPTR d2 __asm("d2") = name;
  736.   register unsigned long d3 __asm("d3") = flags;
  737.   __asm __volatile ("jsr a6@(-0x2ac)"
  738.   : "=r" (_res)
  739.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  740.   : "a0","a1","d0","d1","d2","d3", "memory");
  741.   return _res;
  742. }
  743. static __inline struct Segment *
  744. FindSegment (BASE_PAR_DECL STRPTR name,struct Segment *seg,long system)
  745. {
  746.   BASE_EXT_DECL
  747.   register struct Segment * _res  __asm("d0");
  748.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  749.   register STRPTR d1 __asm("d1") = name;
  750.   register struct Segment *d2 __asm("d2") = seg;
  751.   register long d3 __asm("d3") = system;
  752.   __asm __volatile ("jsr a6@(-0x30c)"
  753.   : "=r" (_res)
  754.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  755.   : "a0","a1","d0","d1","d2","d3", "memory");
  756.   return _res;
  757. }
  758. static __inline struct LocalVar *
  759. FindVar (BASE_PAR_DECL STRPTR name,unsigned long type)
  760. {
  761.   BASE_EXT_DECL
  762.   register struct LocalVar * _res  __asm("d0");
  763.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  764.   register STRPTR d1 __asm("d1") = name;
  765.   register unsigned long d2 __asm("d2") = type;
  766.   __asm __volatile ("jsr a6@(-0x396)"
  767.   : "=r" (_res)
  768.   : "r" (a6), "r" (d1), "r" (d2)
  769.   : "a0","a1","d0","d1","d2", "memory");
  770.   return _res;
  771. }
  772. static __inline LONG 
  773. Flush (BASE_PAR_DECL BPTR fh)
  774. {
  775.   BASE_EXT_DECL
  776.   register LONG  _res  __asm("d0");
  777.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  778.   register BPTR d1 __asm("d1") = fh;
  779.   __asm __volatile ("jsr a6@(-0x168)"
  780.   : "=r" (_res)
  781.   : "r" (a6), "r" (d1)
  782.   : "a0","a1","d0","d1", "memory");
  783.   return _res;
  784. }
  785. static __inline BOOL 
  786. Format (BASE_PAR_DECL STRPTR filesystem,STRPTR volumename,unsigned long dostype)
  787. {
  788.   BASE_EXT_DECL
  789.   register BOOL  _res  __asm("d0");
  790.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  791.   register STRPTR d1 __asm("d1") = filesystem;
  792.   register STRPTR d2 __asm("d2") = volumename;
  793.   register unsigned long d3 __asm("d3") = dostype;
  794.   __asm __volatile ("jsr a6@(-0x2ca)"
  795.   : "=r" (_res)
  796.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  797.   : "a0","a1","d0","d1","d2","d3", "memory");
  798.   return _res;
  799. }
  800. static __inline void 
  801. FreeArgs (BASE_PAR_DECL struct RDArgs *args)
  802. {
  803.   BASE_EXT_DECL
  804.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  805.   register struct RDArgs *d1 __asm("d1") = args;
  806.   __asm __volatile ("jsr a6@(-0x35a)"
  807.   : /* no output */
  808.   : "r" (a6), "r" (d1)
  809.   : "a0","a1","d0","d1", "memory");
  810. }
  811. static __inline void 
  812. FreeDeviceProc (BASE_PAR_DECL struct DevProc *dp)
  813. {
  814.   BASE_EXT_DECL
  815.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  816.   register struct DevProc *d1 __asm("d1") = dp;
  817.   __asm __volatile ("jsr a6@(-0x288)"
  818.   : /* no output */
  819.   : "r" (a6), "r" (d1)
  820.   : "a0","a1","d0","d1", "memory");
  821. }
  822. static __inline void 
  823. FreeDosEntry (BASE_PAR_DECL struct DosList *dlist)
  824. {
  825.   BASE_EXT_DECL
  826.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  827.   register struct DosList *d1 __asm("d1") = dlist;
  828.   __asm __volatile ("jsr a6@(-0x2be)"
  829.   : /* no output */
  830.   : "r" (a6), "r" (d1)
  831.   : "a0","a1","d0","d1", "memory");
  832. }
  833. static __inline void 
  834. FreeDosObject (BASE_PAR_DECL unsigned long type,APTR ptr)
  835. {
  836.   BASE_EXT_DECL
  837.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  838.   register unsigned long d1 __asm("d1") = type;
  839.   register APTR d2 __asm("d2") = ptr;
  840.   __asm __volatile ("jsr a6@(-0xea)"
  841.   : /* no output */
  842.   : "r" (a6), "r" (d1), "r" (d2)
  843.   : "a0","a1","d0","d1","d2", "memory");
  844. }
  845. static __inline STRPTR 
  846. GetArgStr (BASE_PAR_DECL0)
  847. {
  848.   BASE_EXT_DECL
  849.   register STRPTR  _res  __asm("d0");
  850.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  851.   __asm __volatile ("jsr a6@(-0x216)"
  852.   : "=r" (_res)
  853.   : "r" (a6)
  854.   : "a0","a1","d0","d1", "memory");
  855.   return _res;
  856. }
  857. static __inline struct MsgPort *
  858. GetConsoleTask (BASE_PAR_DECL0)
  859. {
  860.   BASE_EXT_DECL
  861.   register struct MsgPort * _res  __asm("d0");
  862.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  863.   __asm __volatile ("jsr a6@(-0x1fe)"
  864.   : "=r" (_res)
  865.   : "r" (a6)
  866.   : "a0","a1","d0","d1", "memory");
  867.   return _res;
  868. }
  869. static __inline BOOL 
  870. GetCurrentDirName (BASE_PAR_DECL STRPTR buf,long len)
  871. {
  872.   BASE_EXT_DECL
  873.   register BOOL  _res  __asm("d0");
  874.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  875.   register STRPTR d1 __asm("d1") = buf;
  876.   register long d2 __asm("d2") = len;
  877.   __asm __volatile ("jsr a6@(-0x234)"
  878.   : "=r" (_res)
  879.   : "r" (a6), "r" (d1), "r" (d2)
  880.   : "a0","a1","d0","d1","d2", "memory");
  881.   return _res;
  882. }
  883. static __inline struct DevProc *
  884. GetDeviceProc (BASE_PAR_DECL STRPTR name,struct DevProc *dp)
  885. {
  886.   BASE_EXT_DECL
  887.   register struct DevProc * _res  __asm("d0");
  888.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  889.   register STRPTR d1 __asm("d1") = name;
  890.   register struct DevProc *d2 __asm("d2") = dp;
  891.   __asm __volatile ("jsr a6@(-0x282)"
  892.   : "=r" (_res)
  893.   : "r" (a6), "r" (d1), "r" (d2)
  894.   : "a0","a1","d0","d1","d2", "memory");
  895.   return _res;
  896. }
  897. static __inline struct MsgPort *
  898. GetFileSysTask (BASE_PAR_DECL0)
  899. {
  900.   BASE_EXT_DECL
  901.   register struct MsgPort * _res  __asm("d0");
  902.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  903.   __asm __volatile ("jsr a6@(-0x20a)"
  904.   : "=r" (_res)
  905.   : "r" (a6)
  906.   : "a0","a1","d0","d1", "memory");
  907.   return _res;
  908. }
  909. static __inline BPTR 
  910. GetProgramDir (BASE_PAR_DECL0)
  911. {
  912.   BASE_EXT_DECL
  913.   register BPTR  _res  __asm("d0");
  914.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  915.   __asm __volatile ("jsr a6@(-0x258)"
  916.   : "=r" (_res)
  917.   : "r" (a6)
  918.   : "a0","a1","d0","d1", "memory");
  919.   return _res;
  920. }
  921. static __inline BOOL 
  922. GetProgramName (BASE_PAR_DECL STRPTR buf,long len)
  923. {
  924.   BASE_EXT_DECL
  925.   register BOOL  _res  __asm("d0");
  926.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  927.   register STRPTR d1 __asm("d1") = buf;
  928.   register long d2 __asm("d2") = len;
  929.   __asm __volatile ("jsr a6@(-0x240)"
  930.   : "=r" (_res)
  931.   : "r" (a6), "r" (d1), "r" (d2)
  932.   : "a0","a1","d0","d1","d2", "memory");
  933.   return _res;
  934. }
  935. static __inline BOOL 
  936. GetPrompt (BASE_PAR_DECL STRPTR buf,long len)
  937. {
  938.   BASE_EXT_DECL
  939.   register BOOL  _res  __asm("d0");
  940.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  941.   register STRPTR d1 __asm("d1") = buf;
  942.   register long d2 __asm("d2") = len;
  943.   __asm __volatile ("jsr a6@(-0x24c)"
  944.   : "=r" (_res)
  945.   : "r" (a6), "r" (d1), "r" (d2)
  946.   : "a0","a1","d0","d1","d2", "memory");
  947.   return _res;
  948. }
  949. static __inline LONG 
  950. GetVar (BASE_PAR_DECL STRPTR name,STRPTR buffer,long size,long flags)
  951. {
  952.   BASE_EXT_DECL
  953.   register LONG  _res  __asm("d0");
  954.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  955.   register STRPTR d1 __asm("d1") = name;
  956.   register STRPTR d2 __asm("d2") = buffer;
  957.   register long d3 __asm("d3") = size;
  958.   register long d4 __asm("d4") = flags;
  959.   __asm __volatile ("jsr a6@(-0x38a)"
  960.   : "=r" (_res)
  961.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  962.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  963.   return _res;
  964. }
  965. static __inline LONG 
  966. Info (BASE_PAR_DECL BPTR lock,struct InfoData *parameterBlock)
  967. {
  968.   BASE_EXT_DECL
  969.   register LONG  _res  __asm("d0");
  970.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  971.   register BPTR d1 __asm("d1") = lock;
  972.   register struct InfoData *d2 __asm("d2") = parameterBlock;
  973.   __asm __volatile ("jsr a6@(-0x72)"
  974.   : "=r" (_res)
  975.   : "r" (a6), "r" (d1), "r" (d2)
  976.   : "a0","a1","d0","d1","d2", "memory");
  977.   return _res;
  978. }
  979. static __inline LONG 
  980. Inhibit (BASE_PAR_DECL STRPTR name,long onoff)
  981. {
  982.   BASE_EXT_DECL
  983.   register LONG  _res  __asm("d0");
  984.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  985.   register STRPTR d1 __asm("d1") = name;
  986.   register long d2 __asm("d2") = onoff;
  987.   __asm __volatile ("jsr a6@(-0x2d6)"
  988.   : "=r" (_res)
  989.   : "r" (a6), "r" (d1), "r" (d2)
  990.   : "a0","a1","d0","d1","d2", "memory");
  991.   return _res;
  992. }
  993. static __inline BPTR 
  994. Input (BASE_PAR_DECL0)
  995. {
  996.   BASE_EXT_DECL
  997.   register BPTR  _res  __asm("d0");
  998.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  999.   __asm __volatile ("jsr a6@(-0x36)"
  1000.   : "=r" (_res)
  1001.   : "r" (a6)
  1002.   : "a0","a1","d0","d1", "memory");
  1003.   return _res;
  1004. }
  1005. static __inline BPTR 
  1006. InternalLoadSeg (BASE_PAR_DECL BPTR fh,BPTR table,LONG *funcarray,LONG *stack)
  1007. {
  1008.   BASE_EXT_DECL
  1009.   register BPTR  _res  __asm("d0");
  1010.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1011.   register BPTR d0 __asm("d0") = fh;
  1012.   register BPTR a0 __asm("a0") = table;
  1013.   register LONG *a1 __asm("a1") = funcarray;
  1014.   register LONG *a2 __asm("a2") = stack;
  1015.   __asm __volatile ("jsr a6@(-0x2f4)"
  1016.   : "=r" (_res)
  1017.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1), "r" (a2)
  1018.   : "a0","a1","a2","d0","d1", "memory");
  1019.   return _res;
  1020. }
  1021. static __inline BOOL 
  1022. InternalUnLoadSeg (BASE_PAR_DECL BPTR seglist,void (*freefunc)())
  1023. {
  1024.   BASE_EXT_DECL
  1025.   register BOOL  _res  __asm("d0");
  1026.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1027.   register BPTR d1 __asm("d1") = seglist;
  1028.   register void (*a1)() __asm("a1") = freefunc;
  1029.   __asm __volatile ("jsr a6@(-0x2fa)"
  1030.   : "=r" (_res)
  1031.   : "r" (a6), "r" (d1), "r" (a1)
  1032.   : "a0","a1","d0","d1", "memory");
  1033.   return _res;
  1034. }
  1035. static __inline LONG 
  1036. IoErr (BASE_PAR_DECL0)
  1037. {
  1038.   BASE_EXT_DECL
  1039.   register LONG  _res  __asm("d0");
  1040.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1041.   __asm __volatile ("jsr a6@(-0x84)"
  1042.   : "=r" (_res)
  1043.   : "r" (a6)
  1044.   : "a0","a1","d0","d1", "memory");
  1045.   return _res;
  1046. }
  1047. static __inline BOOL 
  1048. IsFileSystem (BASE_PAR_DECL STRPTR name)
  1049. {
  1050.   BASE_EXT_DECL
  1051.   register BOOL  _res  __asm("d0");
  1052.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1053.   register STRPTR d1 __asm("d1") = name;
  1054.   __asm __volatile ("jsr a6@(-0x2c4)"
  1055.   : "=r" (_res)
  1056.   : "r" (a6), "r" (d1)
  1057.   : "a0","a1","d0","d1", "memory");
  1058.   return _res;
  1059. }
  1060. static __inline LONG 
  1061. IsInteractive (BASE_PAR_DECL BPTR file)
  1062. {
  1063.   BASE_EXT_DECL
  1064.   register LONG  _res  __asm("d0");
  1065.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1066.   register BPTR d1 __asm("d1") = file;
  1067.   __asm __volatile ("jsr a6@(-0xd8)"
  1068.   : "=r" (_res)
  1069.   : "r" (a6), "r" (d1)
  1070.   : "a0","a1","d0","d1", "memory");
  1071.   return _res;
  1072. }
  1073. static __inline BPTR 
  1074. LoadSeg (BASE_PAR_DECL STRPTR name)
  1075. {
  1076.   BASE_EXT_DECL
  1077.   register BPTR  _res  __asm("d0");
  1078.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1079.   register STRPTR d1 __asm("d1") = name;
  1080.   __asm __volatile ("jsr a6@(-0x96)"
  1081.   : "=r" (_res)
  1082.   : "r" (a6), "r" (d1)
  1083.   : "a0","a1","d0","d1", "memory");
  1084.   return _res;
  1085. }
  1086. static __inline BPTR 
  1087. Lock (BASE_PAR_DECL STRPTR name,long type)
  1088. {
  1089.   BASE_EXT_DECL
  1090.   register BPTR  _res  __asm("d0");
  1091.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1092.   register STRPTR d1 __asm("d1") = name;
  1093.   register long d2 __asm("d2") = type;
  1094.   __asm __volatile ("jsr a6@(-0x54)"
  1095.   : "=r" (_res)
  1096.   : "r" (a6), "r" (d1), "r" (d2)
  1097.   : "a0","a1","d0","d1","d2", "memory");
  1098.   return _res;
  1099. }
  1100. static __inline struct DosList *
  1101. LockDosList (BASE_PAR_DECL unsigned long flags)
  1102. {
  1103.   BASE_EXT_DECL
  1104.   register struct DosList * _res  __asm("d0");
  1105.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1106.   register unsigned long d1 __asm("d1") = flags;
  1107.   __asm __volatile ("jsr a6@(-0x28e)"
  1108.   : "=r" (_res)
  1109.   : "r" (a6), "r" (d1)
  1110.   : "a0","a1","d0","d1", "memory");
  1111.   return _res;
  1112. }
  1113. static __inline BOOL 
  1114. LockRecord (BASE_PAR_DECL BPTR fh,unsigned long offset,unsigned long length,unsigned long mode,unsigned long timeout)
  1115. {
  1116.   BASE_EXT_DECL
  1117.   register BOOL  _res  __asm("d0");
  1118.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1119.   register BPTR d1 __asm("d1") = fh;
  1120.   register unsigned long d2 __asm("d2") = offset;
  1121.   register unsigned long d3 __asm("d3") = length;
  1122.   register unsigned long d4 __asm("d4") = mode;
  1123.   register unsigned long d5 __asm("d5") = timeout;
  1124.   __asm __volatile ("jsr a6@(-0x10e)"
  1125.   : "=r" (_res)
  1126.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (d5)
  1127.   : "a0","a1","d0","d1","d2","d3","d4","d5", "memory");
  1128.   return _res;
  1129. }
  1130. static __inline BOOL 
  1131. LockRecords (BASE_PAR_DECL struct RecordLock *recArray,unsigned long timeout)
  1132. {
  1133.   BASE_EXT_DECL
  1134.   register BOOL  _res  __asm("d0");
  1135.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1136.   register struct RecordLock *d1 __asm("d1") = recArray;
  1137.   register unsigned long d2 __asm("d2") = timeout;
  1138.   __asm __volatile ("jsr a6@(-0x114)"
  1139.   : "=r" (_res)
  1140.   : "r" (a6), "r" (d1), "r" (d2)
  1141.   : "a0","a1","d0","d1","d2", "memory");
  1142.   return _res;
  1143. }
  1144. static __inline struct DosList *
  1145. MakeDosEntry (BASE_PAR_DECL STRPTR name,long type)
  1146. {
  1147.   BASE_EXT_DECL
  1148.   register struct DosList * _res  __asm("d0");
  1149.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1150.   register STRPTR d1 __asm("d1") = name;
  1151.   register long d2 __asm("d2") = type;
  1152.   __asm __volatile ("jsr a6@(-0x2b8)"
  1153.   : "=r" (_res)
  1154.   : "r" (a6), "r" (d1), "r" (d2)
  1155.   : "a0","a1","d0","d1","d2", "memory");
  1156.   return _res;
  1157. }
  1158. static __inline LONG 
  1159. MakeLink (BASE_PAR_DECL STRPTR name,long dest,long soft)
  1160. {
  1161.   BASE_EXT_DECL
  1162.   register LONG  _res  __asm("d0");
  1163.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1164.   register STRPTR d1 __asm("d1") = name;
  1165.   register long d2 __asm("d2") = dest;
  1166.   register long d3 __asm("d3") = soft;
  1167.   __asm __volatile ("jsr a6@(-0x1bc)"
  1168.   : "=r" (_res)
  1169.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1170.   : "a0","a1","d0","d1","d2","d3", "memory");
  1171.   return _res;
  1172. }
  1173. static __inline void 
  1174. MatchEnd (BASE_PAR_DECL struct AnchorPath *anchor)
  1175. {
  1176.   BASE_EXT_DECL
  1177.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1178.   register struct AnchorPath *d1 __asm("d1") = anchor;
  1179.   __asm __volatile ("jsr a6@(-0x342)"
  1180.   : /* no output */
  1181.   : "r" (a6), "r" (d1)
  1182.   : "a0","a1","d0","d1", "memory");
  1183. }
  1184. static __inline LONG 
  1185. MatchFirst (BASE_PAR_DECL STRPTR pat,struct AnchorPath *anchor)
  1186. {
  1187.   BASE_EXT_DECL
  1188.   register LONG  _res  __asm("d0");
  1189.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1190.   register STRPTR d1 __asm("d1") = pat;
  1191.   register struct AnchorPath *d2 __asm("d2") = anchor;
  1192.   __asm __volatile ("jsr a6@(-0x336)"
  1193.   : "=r" (_res)
  1194.   : "r" (a6), "r" (d1), "r" (d2)
  1195.   : "a0","a1","d0","d1","d2", "memory");
  1196.   return _res;
  1197. }
  1198. static __inline LONG 
  1199. MatchNext (BASE_PAR_DECL struct AnchorPath *anchor)
  1200. {
  1201.   BASE_EXT_DECL
  1202.   register LONG  _res  __asm("d0");
  1203.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1204.   register struct AnchorPath *d1 __asm("d1") = anchor;
  1205.   __asm __volatile ("jsr a6@(-0x33c)"
  1206.   : "=r" (_res)
  1207.   : "r" (a6), "r" (d1)
  1208.   : "a0","a1","d0","d1", "memory");
  1209.   return _res;
  1210. }
  1211. static __inline BOOL 
  1212. MatchPattern (BASE_PAR_DECL STRPTR pat,STRPTR str)
  1213. {
  1214.   BASE_EXT_DECL
  1215.   register BOOL  _res  __asm("d0");
  1216.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1217.   register STRPTR d1 __asm("d1") = pat;
  1218.   register STRPTR d2 __asm("d2") = str;
  1219.   __asm __volatile ("jsr a6@(-0x34e)"
  1220.   : "=r" (_res)
  1221.   : "r" (a6), "r" (d1), "r" (d2)
  1222.   : "a0","a1","d0","d1","d2", "memory");
  1223.   return _res;
  1224. }
  1225. static __inline BOOL 
  1226. MatchPatternNoCase (BASE_PAR_DECL STRPTR pat,STRPTR str)
  1227. {
  1228.   BASE_EXT_DECL
  1229.   register BOOL  _res  __asm("d0");
  1230.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1231.   register STRPTR d1 __asm("d1") = pat;
  1232.   register STRPTR d2 __asm("d2") = str;
  1233.   __asm __volatile ("jsr a6@(-0x3cc)"
  1234.   : "=r" (_res)
  1235.   : "r" (a6), "r" (d1), "r" (d2)
  1236.   : "a0","a1","d0","d1","d2", "memory");
  1237.   return _res;
  1238. }
  1239. static __inline ULONG 
  1240. MaxCli (BASE_PAR_DECL0)
  1241. {
  1242.   BASE_EXT_DECL
  1243.   register ULONG  _res  __asm("d0");
  1244.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1245.   __asm __volatile ("jsr a6@(-0x228)"
  1246.   : "=r" (_res)
  1247.   : "r" (a6)
  1248.   : "a0","a1","d0","d1", "memory");
  1249.   return _res;
  1250. }
  1251. static __inline LONG 
  1252. NameFromFH (BASE_PAR_DECL BPTR fh,STRPTR buffer,long len)
  1253. {
  1254.   BASE_EXT_DECL
  1255.   register LONG  _res  __asm("d0");
  1256.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1257.   register BPTR d1 __asm("d1") = fh;
  1258.   register STRPTR d2 __asm("d2") = buffer;
  1259.   register long d3 __asm("d3") = len;
  1260.   __asm __volatile ("jsr a6@(-0x198)"
  1261.   : "=r" (_res)
  1262.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1263.   : "a0","a1","d0","d1","d2","d3", "memory");
  1264.   return _res;
  1265. }
  1266. static __inline LONG 
  1267. NameFromLock (BASE_PAR_DECL BPTR lock,STRPTR buffer,long len)
  1268. {
  1269.   BASE_EXT_DECL
  1270.   register LONG  _res  __asm("d0");
  1271.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1272.   register BPTR d1 __asm("d1") = lock;
  1273.   register STRPTR d2 __asm("d2") = buffer;
  1274.   register long d3 __asm("d3") = len;
  1275.   __asm __volatile ("jsr a6@(-0x192)"
  1276.   : "=r" (_res)
  1277.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1278.   : "a0","a1","d0","d1","d2","d3", "memory");
  1279.   return _res;
  1280. }
  1281. static __inline BPTR 
  1282. NewLoadSeg (BASE_PAR_DECL STRPTR file,struct TagItem *tags)
  1283. {
  1284.   BASE_EXT_DECL
  1285.   register BPTR  _res  __asm("d0");
  1286.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1287.   register STRPTR d1 __asm("d1") = file;
  1288.   register struct TagItem *d2 __asm("d2") = tags;
  1289.   __asm __volatile ("jsr a6@(-0x300)"
  1290.   : "=r" (_res)
  1291.   : "r" (a6), "r" (d1), "r" (d2)
  1292.   : "a0","a1","d0","d1","d2", "memory");
  1293.   return _res;
  1294. }
  1295. #ifndef NO_INLINE_STDARG
  1296. #define NewLoadSegTags(a0, tags...) \
  1297.   ({ struct TagItem _tags[] = { tags }; NewLoadSeg ((a0), _tags); })
  1298. #endif /* not NO_INLINE_STDARG */
  1299. #define NewLoadSegTagList(a0, a1) NewLoadSeg ((a0), (a1))
  1300. static __inline struct DosList *
  1301. NextDosEntry (BASE_PAR_DECL struct DosList *dlist,unsigned long flags)
  1302. {
  1303.   BASE_EXT_DECL
  1304.   register struct DosList * _res  __asm("d0");
  1305.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1306.   register struct DosList *d1 __asm("d1") = dlist;
  1307.   register unsigned long d2 __asm("d2") = flags;
  1308.   __asm __volatile ("jsr a6@(-0x2b2)"
  1309.   : "=r" (_res)
  1310.   : "r" (a6), "r" (d1), "r" (d2)
  1311.   : "a0","a1","d0","d1","d2", "memory");
  1312.   return _res;
  1313. }
  1314. static __inline BPTR 
  1315. Open (BASE_PAR_DECL STRPTR name,long accessMode)
  1316. {
  1317.   BASE_EXT_DECL
  1318.   register BPTR  _res  __asm("d0");
  1319.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1320.   register STRPTR d1 __asm("d1") = name;
  1321.   register long d2 __asm("d2") = accessMode;
  1322.   __asm __volatile ("jsr a6@(-0x1e)"
  1323.   : "=r" (_res)
  1324.   : "r" (a6), "r" (d1), "r" (d2)
  1325.   : "a0","a1","d0","d1","d2", "memory");
  1326.   return _res;
  1327. }
  1328. static __inline BPTR 
  1329. OpenFromLock (BASE_PAR_DECL BPTR lock)
  1330. {
  1331.   BASE_EXT_DECL
  1332.   register BPTR  _res  __asm("d0");
  1333.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1334.   register BPTR d1 __asm("d1") = lock;
  1335.   __asm __volatile ("jsr a6@(-0x17a)"
  1336.   : "=r" (_res)
  1337.   : "r" (a6), "r" (d1)
  1338.   : "a0","a1","d0","d1", "memory");
  1339.   return _res;
  1340. }
  1341. static __inline BPTR 
  1342. Output (BASE_PAR_DECL0)
  1343. {
  1344.   BASE_EXT_DECL
  1345.   register BPTR  _res  __asm("d0");
  1346.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1347.   __asm __volatile ("jsr a6@(-0x3c)"
  1348.   : "=r" (_res)
  1349.   : "r" (a6)
  1350.   : "a0","a1","d0","d1", "memory");
  1351.   return _res;
  1352. }
  1353. static __inline BPTR 
  1354. ParentDir (BASE_PAR_DECL BPTR lock)
  1355. {
  1356.   BASE_EXT_DECL
  1357.   register BPTR  _res  __asm("d0");
  1358.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1359.   register BPTR d1 __asm("d1") = lock;
  1360.   __asm __volatile ("jsr a6@(-0xd2)"
  1361.   : "=r" (_res)
  1362.   : "r" (a6), "r" (d1)
  1363.   : "a0","a1","d0","d1", "memory");
  1364.   return _res;
  1365. }
  1366. static __inline BPTR 
  1367. ParentOfFH (BASE_PAR_DECL BPTR fh)
  1368. {
  1369.   BASE_EXT_DECL
  1370.   register BPTR  _res  __asm("d0");
  1371.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1372.   register BPTR d1 __asm("d1") = fh;
  1373.   __asm __volatile ("jsr a6@(-0x180)"
  1374.   : "=r" (_res)
  1375.   : "r" (a6), "r" (d1)
  1376.   : "a0","a1","d0","d1", "memory");
  1377.   return _res;
  1378. }
  1379. static __inline LONG 
  1380. ParsePattern (BASE_PAR_DECL STRPTR pat,STRPTR buf,long buflen)
  1381. {
  1382.   BASE_EXT_DECL
  1383.   register LONG  _res  __asm("d0");
  1384.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1385.   register STRPTR d1 __asm("d1") = pat;
  1386.   register STRPTR d2 __asm("d2") = buf;
  1387.   register long d3 __asm("d3") = buflen;
  1388.   __asm __volatile ("jsr a6@(-0x348)"
  1389.   : "=r" (_res)
  1390.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1391.   : "a0","a1","d0","d1","d2","d3", "memory");
  1392.   return _res;
  1393. }
  1394. static __inline LONG 
  1395. ParsePatternNoCase (BASE_PAR_DECL STRPTR pat,STRPTR buf,long buflen)
  1396. {
  1397.   BASE_EXT_DECL
  1398.   register LONG  _res  __asm("d0");
  1399.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1400.   register STRPTR d1 __asm("d1") = pat;
  1401.   register STRPTR d2 __asm("d2") = buf;
  1402.   register long d3 __asm("d3") = buflen;
  1403.   __asm __volatile ("jsr a6@(-0x3c6)"
  1404.   : "=r" (_res)
  1405.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1406.   : "a0","a1","d0","d1","d2","d3", "memory");
  1407.   return _res;
  1408. }
  1409. static __inline STRPTR 
  1410. PathPart (BASE_PAR_DECL STRPTR path)
  1411. {
  1412.   BASE_EXT_DECL
  1413.   register STRPTR  _res  __asm("d0");
  1414.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1415.   register STRPTR d1 __asm("d1") = path;
  1416.   __asm __volatile ("jsr a6@(-0x36c)"
  1417.   : "=r" (_res)
  1418.   : "r" (a6), "r" (d1)
  1419.   : "a0","a1","d0","d1", "memory");
  1420.   return _res;
  1421. }
  1422. static __inline BOOL 
  1423. PrintFault (BASE_PAR_DECL long code,STRPTR header)
  1424. {
  1425.   BASE_EXT_DECL
  1426.   register BOOL  _res  __asm("d0");
  1427.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1428.   register long d1 __asm("d1") = code;
  1429.   register STRPTR d2 __asm("d2") = header;
  1430.   __asm __volatile ("jsr a6@(-0x1da)"
  1431.   : "=r" (_res)
  1432.   : "r" (a6), "r" (d1), "r" (d2)
  1433.   : "a0","a1","d0","d1","d2", "memory");
  1434.   return _res;
  1435. }
  1436. static __inline LONG 
  1437. PutStr (BASE_PAR_DECL STRPTR str)
  1438. {
  1439.   BASE_EXT_DECL
  1440.   register LONG  _res  __asm("d0");
  1441.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1442.   register STRPTR d1 __asm("d1") = str;
  1443.   __asm __volatile ("jsr a6@(-0x3b4)"
  1444.   : "=r" (_res)
  1445.   : "r" (a6), "r" (d1)
  1446.   : "a0","a1","d0","d1", "memory");
  1447.   return _res;
  1448. }
  1449. static __inline LONG 
  1450. Read (BASE_PAR_DECL BPTR file,APTR buffer,long length)
  1451. {
  1452.   BASE_EXT_DECL
  1453.   register LONG  _res  __asm("d0");
  1454.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1455.   register BPTR d1 __asm("d1") = file;
  1456.   register APTR d2 __asm("d2") = buffer;
  1457.   register long d3 __asm("d3") = length;
  1458.   __asm __volatile ("jsr a6@(-0x2a)"
  1459.   : "=r" (_res)
  1460.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1461.   : "a0","a1","d0","d1","d2","d3", "memory");
  1462.   return _res;
  1463. }
  1464. static __inline struct RDArgs *
  1465. ReadArgs (BASE_PAR_DECL STRPTR _template,LONG *array,struct RDArgs *args)
  1466. {
  1467.   BASE_EXT_DECL
  1468.   register struct RDArgs * _res  __asm("d0");
  1469.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1470.   register STRPTR d1 __asm("d1") = _template;
  1471.   register LONG *d2 __asm("d2") = array;
  1472.   register struct RDArgs *d3 __asm("d3") = args;
  1473.   __asm __volatile ("jsr a6@(-0x31e)"
  1474.   : "=r" (_res)
  1475.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1476.   : "a0","a1","d0","d1","d2","d3", "memory");
  1477.   return _res;
  1478. }
  1479. static __inline LONG 
  1480. ReadItem (BASE_PAR_DECL STRPTR name,long maxchars,struct CSource *cSource)
  1481. {
  1482.   BASE_EXT_DECL
  1483.   register LONG  _res  __asm("d0");
  1484.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1485.   register STRPTR d1 __asm("d1") = name;
  1486.   register long d2 __asm("d2") = maxchars;
  1487.   register struct CSource *d3 __asm("d3") = cSource;
  1488.   __asm __volatile ("jsr a6@(-0x32a)"
  1489.   : "=r" (_res)
  1490.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1491.   : "a0","a1","d0","d1","d2","d3", "memory");
  1492.   return _res;
  1493. }
  1494. static __inline LONG 
  1495. ReadLink (BASE_PAR_DECL struct MsgPort *port,BPTR lock,STRPTR path,STRPTR buffer,unsigned long size)
  1496. {
  1497.   BASE_EXT_DECL
  1498.   register LONG  _res  __asm("d0");
  1499.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1500.   register struct MsgPort *d1 __asm("d1") = port;
  1501.   register BPTR d2 __asm("d2") = lock;
  1502.   register STRPTR d3 __asm("d3") = path;
  1503.   register STRPTR d4 __asm("d4") = buffer;
  1504.   register unsigned long d5 __asm("d5") = size;
  1505.   __asm __volatile ("jsr a6@(-0x1b6)"
  1506.   : "=r" (_res)
  1507.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (d5)
  1508.   : "a0","a1","d0","d1","d2","d3","d4","d5", "memory");
  1509.   return _res;
  1510. }
  1511. static __inline LONG 
  1512. Relabel (BASE_PAR_DECL STRPTR drive,STRPTR newname)
  1513. {
  1514.   BASE_EXT_DECL
  1515.   register LONG  _res  __asm("d0");
  1516.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1517.   register STRPTR d1 __asm("d1") = drive;
  1518.   register STRPTR d2 __asm("d2") = newname;
  1519.   __asm __volatile ("jsr a6@(-0x2d0)"
  1520.   : "=r" (_res)
  1521.   : "r" (a6), "r" (d1), "r" (d2)
  1522.   : "a0","a1","d0","d1","d2", "memory");
  1523.   return _res;
  1524. }
  1525. static __inline LONG 
  1526. RemAssignList (BASE_PAR_DECL STRPTR name,BPTR lock)
  1527. {
  1528.   BASE_EXT_DECL
  1529.   register LONG  _res  __asm("d0");
  1530.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1531.   register STRPTR d1 __asm("d1") = name;
  1532.   register BPTR d2 __asm("d2") = lock;
  1533.   __asm __volatile ("jsr a6@(-0x27c)"
  1534.   : "=r" (_res)
  1535.   : "r" (a6), "r" (d1), "r" (d2)
  1536.   : "a0","a1","d0","d1","d2", "memory");
  1537.   return _res;
  1538. }
  1539. static __inline BOOL 
  1540. RemDosEntry (BASE_PAR_DECL struct DosList *dlist)
  1541. {
  1542.   BASE_EXT_DECL
  1543.   register BOOL  _res  __asm("d0");
  1544.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1545.   register struct DosList *d1 __asm("d1") = dlist;
  1546.   __asm __volatile ("jsr a6@(-0x2a0)"
  1547.   : "=r" (_res)
  1548.   : "r" (a6), "r" (d1)
  1549.   : "a0","a1","d0","d1", "memory");
  1550.   return _res;
  1551. }
  1552. static __inline LONG 
  1553. RemSegment (BASE_PAR_DECL struct Segment *seg)
  1554. {
  1555.   BASE_EXT_DECL
  1556.   register LONG  _res  __asm("d0");
  1557.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1558.   register struct Segment *d1 __asm("d1") = seg;
  1559.   __asm __volatile ("jsr a6@(-0x312)"
  1560.   : "=r" (_res)
  1561.   : "r" (a6), "r" (d1)
  1562.   : "a0","a1","d0","d1", "memory");
  1563.   return _res;
  1564. }
  1565. static __inline LONG 
  1566. Rename (BASE_PAR_DECL STRPTR oldName,STRPTR newName)
  1567. {
  1568.   BASE_EXT_DECL
  1569.   register LONG  _res  __asm("d0");
  1570.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1571.   register STRPTR d1 __asm("d1") = oldName;
  1572.   register STRPTR d2 __asm("d2") = newName;
  1573.   __asm __volatile ("jsr a6@(-0x4e)"
  1574.   : "=r" (_res)
  1575.   : "r" (a6), "r" (d1), "r" (d2)
  1576.   : "a0","a1","d0","d1","d2", "memory");
  1577.   return _res;
  1578. }
  1579. static __inline void 
  1580. ReplyPkt (BASE_PAR_DECL struct DosPacket *dp,long res1,long res2)
  1581. {
  1582.   BASE_EXT_DECL
  1583.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1584.   register struct DosPacket *d1 __asm("d1") = dp;
  1585.   register long d2 __asm("d2") = res1;
  1586.   register long d3 __asm("d3") = res2;
  1587.   __asm __volatile ("jsr a6@(-0x102)"
  1588.   : /* no output */
  1589.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1590.   : "a0","a1","d0","d1","d2","d3", "memory");
  1591. }
  1592. static __inline LONG 
  1593. RunCommand (BASE_PAR_DECL BPTR seg,long stack,STRPTR paramptr,long paramlen)
  1594. {
  1595.   BASE_EXT_DECL
  1596.   register LONG  _res  __asm("d0");
  1597.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1598.   register BPTR d1 __asm("d1") = seg;
  1599.   register long d2 __asm("d2") = stack;
  1600.   register STRPTR d3 __asm("d3") = paramptr;
  1601.   register long d4 __asm("d4") = paramlen;
  1602.   __asm __volatile ("jsr a6@(-0x1f8)"
  1603.   : "=r" (_res)
  1604.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  1605.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  1606.   return _res;
  1607. }
  1608. static __inline BOOL 
  1609. SameDevice (BASE_PAR_DECL BPTR lock1,BPTR lock2)
  1610. {
  1611.   BASE_EXT_DECL
  1612.   register BOOL  _res  __asm("d0");
  1613.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1614.   register BPTR d1 __asm("d1") = lock1;
  1615.   register BPTR d2 __asm("d2") = lock2;
  1616.   __asm __volatile ("jsr a6@(-0x3d8)"
  1617.   : "=r" (_res)
  1618.   : "r" (a6), "r" (d1), "r" (d2)
  1619.   : "a0","a1","d0","d1","d2", "memory");
  1620.   return _res;
  1621. }
  1622. static __inline LONG 
  1623. SameLock (BASE_PAR_DECL BPTR lock1,BPTR lock2)
  1624. {
  1625.   BASE_EXT_DECL
  1626.   register LONG  _res  __asm("d0");
  1627.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1628.   register BPTR d1 __asm("d1") = lock1;
  1629.   register BPTR d2 __asm("d2") = lock2;
  1630.   __asm __volatile ("jsr a6@(-0x1a4)"
  1631.   : "=r" (_res)
  1632.   : "r" (a6), "r" (d1), "r" (d2)
  1633.   : "a0","a1","d0","d1","d2", "memory");
  1634.   return _res;
  1635. }
  1636. static __inline LONG 
  1637. Seek (BASE_PAR_DECL BPTR file,long position,long offset)
  1638. {
  1639.   BASE_EXT_DECL
  1640.   register LONG  _res  __asm("d0");
  1641.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1642.   register BPTR d1 __asm("d1") = file;
  1643.   register long d2 __asm("d2") = position;
  1644.   register long d3 __asm("d3") = offset;
  1645.   __asm __volatile ("jsr a6@(-0x42)"
  1646.   : "=r" (_res)
  1647.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1648.   : "a0","a1","d0","d1","d2","d3", "memory");
  1649.   return _res;
  1650. }
  1651. static __inline BPTR 
  1652. SelectInput (BASE_PAR_DECL BPTR fh)
  1653. {
  1654.   BASE_EXT_DECL
  1655.   register BPTR  _res  __asm("d0");
  1656.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1657.   register BPTR d1 __asm("d1") = fh;
  1658.   __asm __volatile ("jsr a6@(-0x126)"
  1659.   : "=r" (_res)
  1660.   : "r" (a6), "r" (d1)
  1661.   : "a0","a1","d0","d1", "memory");
  1662.   return _res;
  1663. }
  1664. static __inline BPTR 
  1665. SelectOutput (BASE_PAR_DECL BPTR fh)
  1666. {
  1667.   BASE_EXT_DECL
  1668.   register BPTR  _res  __asm("d0");
  1669.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1670.   register BPTR d1 __asm("d1") = fh;
  1671.   __asm __volatile ("jsr a6@(-0x12c)"
  1672.   : "=r" (_res)
  1673.   : "r" (a6), "r" (d1)
  1674.   : "a0","a1","d0","d1", "memory");
  1675.   return _res;
  1676. }
  1677. static __inline void 
  1678. SendPkt (BASE_PAR_DECL struct DosPacket *dp,struct MsgPort *port,struct MsgPort *replyport)
  1679. {
  1680.   BASE_EXT_DECL
  1681.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1682.   register struct DosPacket *d1 __asm("d1") = dp;
  1683.   register struct MsgPort *d2 __asm("d2") = port;
  1684.   register struct MsgPort *d3 __asm("d3") = replyport;
  1685.   __asm __volatile ("jsr a6@(-0xf6)"
  1686.   : /* no output */
  1687.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1688.   : "a0","a1","d0","d1","d2","d3", "memory");
  1689. }
  1690. static __inline BOOL 
  1691. SetArgStr (BASE_PAR_DECL STRPTR string)
  1692. {
  1693.   BASE_EXT_DECL
  1694.   register BOOL  _res  __asm("d0");
  1695.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1696.   register STRPTR d1 __asm("d1") = string;
  1697.   __asm __volatile ("jsr a6@(-0x21c)"
  1698.   : "=r" (_res)
  1699.   : "r" (a6), "r" (d1)
  1700.   : "a0","a1","d0","d1", "memory");
  1701.   return _res;
  1702. }
  1703. static __inline LONG 
  1704. SetComment (BASE_PAR_DECL STRPTR name,STRPTR comment)
  1705. {
  1706.   BASE_EXT_DECL
  1707.   register LONG  _res  __asm("d0");
  1708.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1709.   register STRPTR d1 __asm("d1") = name;
  1710.   register STRPTR d2 __asm("d2") = comment;
  1711.   __asm __volatile ("jsr a6@(-0xb4)"
  1712.   : "=r" (_res)
  1713.   : "r" (a6), "r" (d1), "r" (d2)
  1714.   : "a0","a1","d0","d1","d2", "memory");
  1715.   return _res;
  1716. }
  1717. static __inline struct MsgPort *
  1718. SetConsoleTask (BASE_PAR_DECL struct MsgPort *task)
  1719. {
  1720.   BASE_EXT_DECL
  1721.   register struct MsgPort * _res  __asm("d0");
  1722.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1723.   register struct MsgPort *d1 __asm("d1") = task;
  1724.   __asm __volatile ("jsr a6@(-0x204)"
  1725.   : "=r" (_res)
  1726.   : "r" (a6), "r" (d1)
  1727.   : "a0","a1","d0","d1", "memory");
  1728.   return _res;
  1729. }
  1730. static __inline BOOL 
  1731. SetCurrentDirName (BASE_PAR_DECL STRPTR name)
  1732. {
  1733.   BASE_EXT_DECL
  1734.   register BOOL  _res  __asm("d0");
  1735.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1736.   register STRPTR d1 __asm("d1") = name;
  1737.   __asm __volatile ("jsr a6@(-0x22e)"
  1738.   : "=r" (_res)
  1739.   : "r" (a6), "r" (d1)
  1740.   : "a0","a1","d0","d1", "memory");
  1741.   return _res;
  1742. }
  1743. static __inline LONG 
  1744. SetFileDate (BASE_PAR_DECL STRPTR name,struct DateStamp *date)
  1745. {
  1746.   BASE_EXT_DECL
  1747.   register LONG  _res  __asm("d0");
  1748.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1749.   register STRPTR d1 __asm("d1") = name;
  1750.   register struct DateStamp *d2 __asm("d2") = date;
  1751.   __asm __volatile ("jsr a6@(-0x18c)"
  1752.   : "=r" (_res)
  1753.   : "r" (a6), "r" (d1), "r" (d2)
  1754.   : "a0","a1","d0","d1","d2", "memory");
  1755.   return _res;
  1756. }
  1757. static __inline LONG 
  1758. SetFileSize (BASE_PAR_DECL BPTR fh,long pos,long mode)
  1759. {
  1760.   BASE_EXT_DECL
  1761.   register LONG  _res  __asm("d0");
  1762.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1763.   register BPTR d1 __asm("d1") = fh;
  1764.   register long d2 __asm("d2") = pos;
  1765.   register long d3 __asm("d3") = mode;
  1766.   __asm __volatile ("jsr a6@(-0x1c8)"
  1767.   : "=r" (_res)
  1768.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  1769.   : "a0","a1","d0","d1","d2","d3", "memory");
  1770.   return _res;
  1771. }
  1772. static __inline struct MsgPort *
  1773. SetFileSysTask (BASE_PAR_DECL struct MsgPort *task)
  1774. {
  1775.   BASE_EXT_DECL
  1776.   register struct MsgPort * _res  __asm("d0");
  1777.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1778.   register struct MsgPort *d1 __asm("d1") = task;
  1779.   __asm __volatile ("jsr a6@(-0x210)"
  1780.   : "=r" (_res)
  1781.   : "r" (a6), "r" (d1)
  1782.   : "a0","a1","d0","d1", "memory");
  1783.   return _res;
  1784. }
  1785. static __inline LONG 
  1786. SetIoErr (BASE_PAR_DECL long result)
  1787. {
  1788.   BASE_EXT_DECL
  1789.   register LONG  _res  __asm("d0");
  1790.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1791.   register long d1 __asm("d1") = result;
  1792.   __asm __volatile ("jsr a6@(-0x1ce)"
  1793.   : "=r" (_res)
  1794.   : "r" (a6), "r" (d1)
  1795.   : "a0","a1","d0","d1", "memory");
  1796.   return _res;
  1797. }
  1798. static __inline LONG 
  1799. SetMode (BASE_PAR_DECL BPTR fh,long mode)
  1800. {
  1801.   BASE_EXT_DECL
  1802.   register LONG  _res  __asm("d0");
  1803.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1804.   register BPTR d1 __asm("d1") = fh;
  1805.   register long d2 __asm("d2") = mode;
  1806.   __asm __volatile ("jsr a6@(-0x1aa)"
  1807.   : "=r" (_res)
  1808.   : "r" (a6), "r" (d1), "r" (d2)
  1809.   : "a0","a1","d0","d1","d2", "memory");
  1810.   return _res;
  1811. }
  1812. static __inline BOOL 
  1813. SetOwner (BASE_PAR_DECL STRPTR name,long owner_info)
  1814. {
  1815.   BASE_EXT_DECL
  1816.   register BOOL  _res  __asm("d0");
  1817.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1818.   register STRPTR d1 __asm("d1") = name;
  1819.   register long d2 __asm("d2") = owner_info;
  1820.   __asm __volatile ("jsr a6@(-0x3e4)"
  1821.   : "=r" (_res)
  1822.   : "r" (a6), "r" (d1), "r" (d2)
  1823.   : "a0","a1","d0","d1","d2", "memory");
  1824.   return _res;
  1825. }
  1826. static __inline BPTR 
  1827. SetProgramDir (BASE_PAR_DECL BPTR lock)
  1828. {
  1829.   BASE_EXT_DECL
  1830.   register BPTR  _res  __asm("d0");
  1831.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1832.   register BPTR d1 __asm("d1") = lock;
  1833.   __asm __volatile ("jsr a6@(-0x252)"
  1834.   : "=r" (_res)
  1835.   : "r" (a6), "r" (d1)
  1836.   : "a0","a1","d0","d1", "memory");
  1837.   return _res;
  1838. }
  1839. static __inline BOOL 
  1840. SetProgramName (BASE_PAR_DECL STRPTR name)
  1841. {
  1842.   BASE_EXT_DECL
  1843.   register BOOL  _res  __asm("d0");
  1844.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1845.   register STRPTR d1 __asm("d1") = name;
  1846.   __asm __volatile ("jsr a6@(-0x23a)"
  1847.   : "=r" (_res)
  1848.   : "r" (a6), "r" (d1)
  1849.   : "a0","a1","d0","d1", "memory");
  1850.   return _res;
  1851. }
  1852. static __inline BOOL 
  1853. SetPrompt (BASE_PAR_DECL STRPTR name)
  1854. {
  1855.   BASE_EXT_DECL
  1856.   register BOOL  _res  __asm("d0");
  1857.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1858.   register STRPTR d1 __asm("d1") = name;
  1859.   __asm __volatile ("jsr a6@(-0x246)"
  1860.   : "=r" (_res)
  1861.   : "r" (a6), "r" (d1)
  1862.   : "a0","a1","d0","d1", "memory");
  1863.   return _res;
  1864. }
  1865. static __inline LONG 
  1866. SetProtection (BASE_PAR_DECL STRPTR name,long protect)
  1867. {
  1868.   BASE_EXT_DECL
  1869.   register LONG  _res  __asm("d0");
  1870.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1871.   register STRPTR d1 __asm("d1") = name;
  1872.   register long d2 __asm("d2") = protect;
  1873.   __asm __volatile ("jsr a6@(-0xba)"
  1874.   : "=r" (_res)
  1875.   : "r" (a6), "r" (d1), "r" (d2)
  1876.   : "a0","a1","d0","d1","d2", "memory");
  1877.   return _res;
  1878. }
  1879. static __inline LONG 
  1880. SetVBuf (BASE_PAR_DECL BPTR fh,STRPTR buff,long type,long size)
  1881. {
  1882.   BASE_EXT_DECL
  1883.   register LONG  _res  __asm("d0");
  1884.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1885.   register BPTR d1 __asm("d1") = fh;
  1886.   register STRPTR d2 __asm("d2") = buff;
  1887.   register long d3 __asm("d3") = type;
  1888.   register long d4 __asm("d4") = size;
  1889.   __asm __volatile ("jsr a6@(-0x16e)"
  1890.   : "=r" (_res)
  1891.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  1892.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  1893.   return _res;
  1894. }
  1895. static __inline BOOL 
  1896. SetVar (BASE_PAR_DECL STRPTR name,STRPTR buffer,long size,long flags)
  1897. {
  1898.   BASE_EXT_DECL
  1899.   register BOOL  _res  __asm("d0");
  1900.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1901.   register STRPTR d1 __asm("d1") = name;
  1902.   register STRPTR d2 __asm("d2") = buffer;
  1903.   register long d3 __asm("d3") = size;
  1904.   register long d4 __asm("d4") = flags;
  1905.   __asm __volatile ("jsr a6@(-0x384)"
  1906.   : "=r" (_res)
  1907.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  1908.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  1909.   return _res;
  1910. }
  1911. static __inline WORD 
  1912. SplitName (BASE_PAR_DECL STRPTR name,unsigned long seperator,STRPTR buf,long oldpos,long size)
  1913. {
  1914.   BASE_EXT_DECL
  1915.   register WORD  _res  __asm("d0");
  1916.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1917.   register STRPTR d1 __asm("d1") = name;
  1918.   register unsigned long d2 __asm("d2") = seperator;
  1919.   register STRPTR d3 __asm("d3") = buf;
  1920.   register long d4 __asm("d4") = oldpos;
  1921.   register long d5 __asm("d5") = size;
  1922.   __asm __volatile ("jsr a6@(-0x19e)"
  1923.   : "=r" (_res)
  1924.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (d5)
  1925.   : "a0","a1","d0","d1","d2","d3","d4","d5", "memory");
  1926.   return _res;
  1927. }
  1928. static __inline BOOL 
  1929. StartNotify (BASE_PAR_DECL struct NotifyRequest *notify)
  1930. {
  1931.   BASE_EXT_DECL
  1932.   register BOOL  _res  __asm("d0");
  1933.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1934.   register struct NotifyRequest *d1 __asm("d1") = notify;
  1935.   __asm __volatile ("jsr a6@(-0x378)"
  1936.   : "=r" (_res)
  1937.   : "r" (a6), "r" (d1)
  1938.   : "a0","a1","d0","d1", "memory");
  1939.   return _res;
  1940. }
  1941. static __inline LONG 
  1942. StrToDate (BASE_PAR_DECL struct DateTime *datetime)
  1943. {
  1944.   BASE_EXT_DECL
  1945.   register LONG  _res  __asm("d0");
  1946.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1947.   register struct DateTime *d1 __asm("d1") = datetime;
  1948.   __asm __volatile ("jsr a6@(-0x2ee)"
  1949.   : "=r" (_res)
  1950.   : "r" (a6), "r" (d1)
  1951.   : "a0","a1","d0","d1", "memory");
  1952.   return _res;
  1953. }
  1954. static __inline LONG 
  1955. StrToLong (BASE_PAR_DECL STRPTR string,LONG *value)
  1956. {
  1957.   BASE_EXT_DECL
  1958.   register LONG  _res  __asm("d0");
  1959.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1960.   register STRPTR d1 __asm("d1") = string;
  1961.   register LONG *d2 __asm("d2") = value;
  1962.   __asm __volatile ("jsr a6@(-0x330)"
  1963.   : "=r" (_res)
  1964.   : "r" (a6), "r" (d1), "r" (d2)
  1965.   : "a0","a1","d0","d1","d2", "memory");
  1966.   return _res;
  1967. }
  1968. static __inline LONG 
  1969. SystemTagList (BASE_PAR_DECL STRPTR command,struct TagItem *tags)
  1970. {
  1971.   BASE_EXT_DECL
  1972.   register LONG  _res  __asm("d0");
  1973.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1974.   register STRPTR d1 __asm("d1") = command;
  1975.   register struct TagItem *d2 __asm("d2") = tags;
  1976.   __asm __volatile ("jsr a6@(-0x25e)"
  1977.   : "=r" (_res)
  1978.   : "r" (a6), "r" (d1), "r" (d2)
  1979.   : "a0","a1","d0","d1","d2", "memory");
  1980.   return _res;
  1981. }
  1982. #ifndef NO_INLINE_STDARG
  1983. #define SystemTags(a0, tags...) \
  1984.   ({ struct TagItem _tags[] = { tags }; SystemTagList ((a0), _tags); })
  1985. #endif /* not NO_INLINE_STDARG */
  1986. #define System(a0, a1) SystemTagList ((a0), (a1))
  1987. static __inline LONG 
  1988. UnGetC (BASE_PAR_DECL BPTR fh,long character)
  1989. {
  1990.   BASE_EXT_DECL
  1991.   register LONG  _res  __asm("d0");
  1992.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  1993.   register BPTR d1 __asm("d1") = fh;
  1994.   register long d2 __asm("d2") = character;
  1995.   __asm __volatile ("jsr a6@(-0x13e)"
  1996.   : "=r" (_res)
  1997.   : "r" (a6), "r" (d1), "r" (d2)
  1998.   : "a0","a1","d0","d1","d2", "memory");
  1999.   return _res;
  2000. }
  2001. static __inline void 
  2002. UnLoadSeg (BASE_PAR_DECL BPTR seglist)
  2003. {
  2004.   BASE_EXT_DECL
  2005.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2006.   register BPTR d1 __asm("d1") = seglist;
  2007.   __asm __volatile ("jsr a6@(-0x9c)"
  2008.   : /* no output */
  2009.   : "r" (a6), "r" (d1)
  2010.   : "a0","a1","d0","d1", "memory");
  2011. }
  2012. static __inline void 
  2013. UnLock (BASE_PAR_DECL BPTR lock)
  2014. {
  2015.   BASE_EXT_DECL
  2016.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2017.   register BPTR d1 __asm("d1") = lock;
  2018.   __asm __volatile ("jsr a6@(-0x5a)"
  2019.   : /* no output */
  2020.   : "r" (a6), "r" (d1)
  2021.   : "a0","a1","d0","d1", "memory");
  2022. }
  2023. static __inline void 
  2024. UnLockDosList (BASE_PAR_DECL unsigned long flags)
  2025. {
  2026.   BASE_EXT_DECL
  2027.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2028.   register unsigned long d1 __asm("d1") = flags;
  2029.   __asm __volatile ("jsr a6@(-0x294)"
  2030.   : /* no output */
  2031.   : "r" (a6), "r" (d1)
  2032.   : "a0","a1","d0","d1", "memory");
  2033. }
  2034. static __inline BOOL 
  2035. UnLockRecord (BASE_PAR_DECL BPTR fh,unsigned long offset,unsigned long length)
  2036. {
  2037.   BASE_EXT_DECL
  2038.   register BOOL  _res  __asm("d0");
  2039.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2040.   register BPTR d1 __asm("d1") = fh;
  2041.   register unsigned long d2 __asm("d2") = offset;
  2042.   register unsigned long d3 __asm("d3") = length;
  2043.   __asm __volatile ("jsr a6@(-0x11a)"
  2044.   : "=r" (_res)
  2045.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  2046.   : "a0","a1","d0","d1","d2","d3", "memory");
  2047.   return _res;
  2048. }
  2049. static __inline BOOL 
  2050. UnLockRecords (BASE_PAR_DECL struct RecordLock *recArray)
  2051. {
  2052.   BASE_EXT_DECL
  2053.   register BOOL  _res  __asm("d0");
  2054.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2055.   register struct RecordLock *d1 __asm("d1") = recArray;
  2056.   __asm __volatile ("jsr a6@(-0x120)"
  2057.   : "=r" (_res)
  2058.   : "r" (a6), "r" (d1)
  2059.   : "a0","a1","d0","d1", "memory");
  2060.   return _res;
  2061. }
  2062. static __inline LONG 
  2063. VFPrintf (BASE_PAR_DECL BPTR fh,STRPTR format,APTR argarray)
  2064. {
  2065.   BASE_EXT_DECL
  2066.   register LONG  _res  __asm("d0");
  2067.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2068.   register BPTR d1 __asm("d1") = fh;
  2069.   register STRPTR d2 __asm("d2") = format;
  2070.   register APTR d3 __asm("d3") = argarray;
  2071.   __asm __volatile ("jsr a6@(-0x162)"
  2072.   : "=r" (_res)
  2073.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  2074.   : "a0","a1","d0","d1","d2","d3", "memory");
  2075.   return _res;
  2076. }
  2077. static __inline void 
  2078. VFWritef (BASE_PAR_DECL BPTR fh,STRPTR format,LONG *argarray)
  2079. {
  2080.   BASE_EXT_DECL
  2081.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2082.   register BPTR d1 __asm("d1") = fh;
  2083.   register STRPTR d2 __asm("d2") = format;
  2084.   register LONG *d3 __asm("d3") = argarray;
  2085.   __asm __volatile ("jsr a6@(-0x15c)"
  2086.   : /* no output */
  2087.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  2088.   : "a0","a1","d0","d1","d2","d3", "memory");
  2089. }
  2090. static __inline LONG 
  2091. VPrintf (BASE_PAR_DECL STRPTR format,APTR argarray)
  2092. {
  2093.   BASE_EXT_DECL
  2094.   register LONG  _res  __asm("d0");
  2095.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2096.   register STRPTR d1 __asm("d1") = format;
  2097.   register APTR d2 __asm("d2") = argarray;
  2098.   __asm __volatile ("jsr a6@(-0x3ba)"
  2099.   : "=r" (_res)
  2100.   : "r" (a6), "r" (d1), "r" (d2)
  2101.   : "a0","a1","d0","d1","d2", "memory");
  2102.   return _res;
  2103. }
  2104. static __inline LONG 
  2105. WaitForChar (BASE_PAR_DECL BPTR file,long timeout)
  2106. {
  2107.   BASE_EXT_DECL
  2108.   register LONG  _res  __asm("d0");
  2109.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2110.   register BPTR d1 __asm("d1") = file;
  2111.   register long d2 __asm("d2") = timeout;
  2112.   __asm __volatile ("jsr a6@(-0xcc)"
  2113.   : "=r" (_res)
  2114.   : "r" (a6), "r" (d1), "r" (d2)
  2115.   : "a0","a1","d0","d1","d2", "memory");
  2116.   return _res;
  2117. }
  2118. static __inline struct DosPacket *
  2119. WaitPkt (BASE_PAR_DECL0)
  2120. {
  2121.   BASE_EXT_DECL
  2122.   register struct DosPacket * _res  __asm("d0");
  2123.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2124.   __asm __volatile ("jsr a6@(-0xfc)"
  2125.   : "=r" (_res)
  2126.   : "r" (a6)
  2127.   : "a0","a1","d0","d1", "memory");
  2128.   return _res;
  2129. }
  2130. static __inline LONG 
  2131. Write (BASE_PAR_DECL BPTR file,APTR buffer,long length)
  2132. {
  2133.   BASE_EXT_DECL
  2134.   register LONG  _res  __asm("d0");
  2135.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2136.   register BPTR d1 __asm("d1") = file;
  2137.   register APTR d2 __asm("d2") = buffer;
  2138.   register long d3 __asm("d3") = length;
  2139.   __asm __volatile ("jsr a6@(-0x30)"
  2140.   : "=r" (_res)
  2141.   : "r" (a6), "r" (d1), "r" (d2), "r" (d3)
  2142.   : "a0","a1","d0","d1","d2","d3", "memory");
  2143.   return _res;
  2144. }
  2145. static __inline LONG 
  2146. WriteChars (BASE_PAR_DECL STRPTR buf,unsigned long buflen)
  2147. {
  2148.   BASE_EXT_DECL
  2149.   register LONG  _res  __asm("d0");
  2150.   register struct DosLibrary *a6 __asm("a6") = BASE_NAME;
  2151.   register STRPTR d1 __asm("d1") = buf;
  2152.   register unsigned long d2 __asm("d2") = buflen;
  2153.   __asm __volatile ("jsr a6@(-0x3ae)"
  2154.   : "=r" (_res)
  2155.   : "r" (a6), "r" (d1), "r" (d2)
  2156.   : "a0","a1","d0","d1","d2", "memory");
  2157.   return _res;
  2158. }
  2159.  
  2160. #undef BASE_EXT_DECL
  2161. #undef BASE_EXT_DECL0
  2162. #undef BASE_PAR_DECL
  2163. #undef BASE_PAR_DECL0
  2164. #undef BASE_NAME
  2165.  
  2166. __END_DECLS
  2167.  
  2168. #endif /* _INLINE_DOS_H */
  2169.